// 该文件的作用是利用pinia将用户的数据进行本地存储，持久化数据

import { defineStore } from 'pinia'
// import router from "../router/index.js";

// defineStore两个参数：key（唯一标识）；第二个参数可以是对象也可以是函数
export const useUserStore = defineStore('user', {
    state: () => ({
        // 设置为对象，里面可以放各种类型的值，比如用户对象和字符串类型的token
        managerInfo: {},
    }),
    getters: {
        getUserId() {
            return this.managerInfo.user ? this.managerInfo.user.id : 0
        },
        getUser() {
            return this.managerInfo.user || {}
        },
        getBearerToken() {
            return this.managerInfo.token ? 'Bearer ' + this.managerInfo.token : ''
        },
        getToken() {
            return this.managerInfo.token || ""
        },
    },
    actions: {
        setManagerInfo(managerInfo) {
            this.managerInfo = managerInfo
            // 设置路由
            // setRoutes(managerInfo.menus)
        },
        // 用来存储用户对象
        setUser(user) {
            this.managerInfo.user = JSON.parse(JSON.stringify(user))
        },
        // 用来存储token
        setToken(token){
            this.managerInfo.token = token
        }
    },
    // 开启数据持久化,默认存储在本地存储，user是key值
    persist: true
})
